home *** CD-ROM | disk | FTP | other *** search
/ 64'er 1996 May / 64er_Magazin_96-05_1996_Markt__Technik_de_Side_A.d64 / player source < prev    next >
Text File  |  2022-10-26  |  19KB  |  844 lines

  1. ;64'er Music Player v.08
  2. ;All Coding and Design by THE SYNDROM
  3. ;---------------------------------------
  4.          *= $0f00
  5.          sei
  6.          lda #$00
  7.          jsr init
  8. rt       lda #$42
  9.          cmp $d012
  10.          bne rt
  11.          inc $d020
  12.          jsr play
  13.          dec $d020
  14.          lda $dc01
  15.          and #$10
  16.          bne rt
  17.          jmp $9000
  18. ;---------------------------------------
  19.          *= $1000
  20.  
  21.          jmp init
  22.          jmp play
  23.          jmp play2
  24. ;---------------------------------------
  25. filtyp   .byte $00
  26. filcon   .byte $00
  27. filfreql .byte $00
  28. filfreqh .byte $00
  29. volume   .byte $00
  30. resonance .byte $00
  31. speed    .byte $00
  32. speed1   .byte $00
  33. multi    .byte $00
  34. identify .byte $00
  35. fade     .byte $00
  36. fadetime .byte $00
  37. filtrs   .byte $00
  38. hardval  .byte $0f ;(xy: x=8->keep ad
  39.          .byte $00 ;     x=0-> ad=y)
  40.          .byte $00,0,0,0 ;yet empty
  41.          .byte $00,0,0,0
  42.          .text "-player & music by the "
  43.          .text "syndrom!-"
  44. ;---------------------------------------
  45. dur      .byte $00
  46. durat    .byte $00
  47. snd      .byte $00
  48. ad       .byte $00
  49. sr       .byte $00
  50. on       .byte $00
  51. vofil    .byte $00
  52.          .byte $00,0,0,0,0,0,0  ;7 bytes
  53.          .byte $00,0,0,0,0,0,0  ;7 bytes
  54. trpos    .byte $00
  55. trackl   .byte $00
  56. trackh   .byte $00
  57. secpos   .byte $00
  58. wave     .byte $00
  59. filpos   .byte $00
  60. pupos    .byte $00
  61.          .byte $00,0,0,0,0,0,0  ; -"-
  62.          .byte $00,0,0,0,0,0,0  ; -"-
  63. andor    .byte $00
  64. cont     .byte $00
  65. trpose   .byte $00
  66. fine     .byte $00
  67. wavepos  .byte $00
  68. switch   .byte $00
  69. nopu     .byte $00
  70.          .byte $00,0,0,0,0,0,0  ; -"-
  71.          .byte $00,0,0,0,0,0,0  ; -"-
  72. vspeed   .byte $00
  73. vaddl    .byte $00
  74. vaddh    .byte $00
  75. svol     .byte $00
  76. glideh   .byte $00
  77. glidel   .byte $00
  78. glfrom   .byte $00
  79.          .byte $00,0,0,0,0,0,0  ; -"-
  80.          .byte $00,0,0,0,0,0,0  ; -"-
  81. glto     .byte $00
  82. wvspeed  .byte $00
  83. hardon   .byte $00
  84. notev    .byte $00
  85. wvspeed1 .byte $00
  86. noteok   .byte $00
  87. drum     .byte $00
  88.          .byte $00,0,0,0,0,0,0  ; -"-
  89.          .byte $00,0,0,0,0,0,0  ; -"-
  90. pulslo   .byte $00
  91. pulshi   .byte $00
  92. pulsfrm  .byte $00
  93. pulsaddl .byte $00
  94. pulsaddh .byte $00
  95. switch2  .byte $00
  96. cut      .byte $00
  97.          .byte $00,0,0,0,0,0,0  ; -"-
  98.          .byte $00,0,0,0,0,0,0  ; -"-
  99. mark     .byte $00
  100.  
  101.  
  102.  
  103.  
  104. ;---------------------------------------
  105. init     asl a
  106.          asl a
  107.          asl a
  108.          tay
  109.          ldx #$00
  110.          txa
  111. initcl   sta dur,x     ;clear data
  112.          inx
  113.          cpx #mark-dur
  114.          bne initcl
  115.          ldx #$00      ;prepare pointers
  116. trfill   lda trakk,y
  117.          sta trackl,x
  118.          lda trakk+1,y
  119.          sta trackh,x
  120.          lda #9        ;reset voices
  121.          sta $d404,x
  122.          sta on,x
  123.          lda #0
  124.          sta ad,x
  125.          sta sr,x
  126.          lda #$02      ;startvalues
  127.          sta durat,x
  128.          lda #$ff
  129.          sta wvspeed1,x
  130.          lda #1
  131.          sta hardon,x
  132.          sta andor,x
  133.          iny
  134.          iny
  135.          txa
  136.          clc
  137.          adc #7        ;0-7-14-loop
  138.          tax
  139.          cpx #21
  140.          bne trfill
  141.          lda trakk,y
  142.          sta speed
  143.          clc
  144.          adc #1
  145.          sta speed1
  146.          lda trakk+1,y
  147.          sta volume
  148.          rts
  149. ;---------------------------------------
  150. play     lda $f8      ;save used
  151.          pha          ;zeropage to stack
  152.          lda $f9
  153.          pha
  154.          dec speed1  ;main-speed-control
  155.          bpl new1
  156.          lda speed
  157.          sta speed1
  158. new1     ldx #0
  159.          jsr voice
  160.          ldx #7
  161.          jsr voice
  162.          ldx #14
  163.          jsr voice
  164.          lda fade     ;volume-fade
  165.          beq nofade   ;active ?
  166.          dec fadetime
  167.          lda fadetime
  168.          bne nofade
  169. ftime    lda #0       ;direct code
  170.          sta fadetime ;accessed
  171.          lda volume
  172.          clc
  173.          adc fade
  174.          sta volume
  175.          cmp #$ff     ;lower stop
  176.          beq fadestop
  177.          cmp #$10
  178.          bne nofade   ;upper stop
  179.          lda #$0f
  180.          sta volume
  181.          bne nofade
  182.  
  183. fadestop lda #0
  184.          sta fade
  185.          sta volume
  186. nofade   lda volume    ;permanent
  187.          ora filtyp    ;controls
  188.          sta $d418
  189.          lda filcon
  190.          ora resonance
  191.          sta $d417
  192.          lda filfreql
  193.          sta $d415
  194.          lda filfreqh
  195.          sta $d416
  196.          pla           ;rewrite zero-
  197.          sta $f9       ;page
  198.          pla
  199.          sta $f8
  200.          rts
  201. ;---------------------------------------
  202. voice    lda on,x      ;voice active?
  203.          bne voion
  204.          rts
  205. voion    lda speed1  ;new duration-
  206.          cmp speed   ;frame ?
  207.          beq new     ;
  208.  
  209.          jmp voice3;hr-check for low
  210.                    ;speeds necessary
  211. new      dec durat,x ;new command-
  212.          beq new3    ;frame ?
  213.          jmp voice3
  214. ;---------------------------------------
  215. ;track-control-routines
  216. ;---------------------------------------
  217. ;commands
  218.          ;$ff xx    loop xx
  219.          ;$fe       stop voice
  220.          ;$fd xx    transpose +xx
  221.          ;$fc xx    transpose -xx
  222.          ;$fb xx    fadein  xx
  223.          ;$fa xx    fadeout xx
  224.          ;$ex       volume x
  225. ;---------------------------------------
  226. new3     lda trackl,x ;set pointers
  227.          sta $f8
  228.          lda trackh,x
  229.          sta $f9
  230. ;---------------------------------------
  231. ;check track-commands
  232. ;---------------------------------------
  233. read     ldy trpos,x
  234.          lda ($f8),y
  235.          bpl nocom   ;sector or command?
  236.          cmp #$fe       ;stop
  237.          bne com1
  238.          lda #0
  239.          sta on,x
  240.          rts
  241. com1     cmp #$ff       ;end
  242.          bne com2
  243.          iny
  244.          lda ($f8),y
  245.          sta trpos,x
  246.          tay
  247.          jmp read+3
  248. com2     cmp #$fd       ;tr+xx
  249.          bne com3
  250.          iny
  251.          lda ($f8),y
  252. dazu     sta trpose,x
  253.          iny
  254.          tya
  255.          sta trpos,x
  256.          jmp read+3
  257. com3     cmp #$fc       ;tr-xx
  258.          bne com4
  259.          iny
  260.          lda ($f8),y
  261.          eor #$ff
  262.          clc
  263.          adc #$01
  264.          jmp dazu
  265. com4     cmp #$fb       ;fd+xx
  266.          bne com5
  267.          iny
  268.          lda ($f8),y
  269.          sta fadetime
  270.          sta ftime+1
  271.          lda #1
  272.          sta fade
  273.          jmp dazu+3
  274. com5     cmp #$fa       ;fd-xx
  275.          bne com6
  276.          iny
  277.          lda ($f8),y
  278.          sta fadetime
  279.          sta ftime+1
  280.          lda #$ff
  281.          sta fade
  282.          jmp dazu+3
  283. com6     cmp #$e0
  284.          bcc com7
  285.          cmp #$f0       ;mvl.x
  286.          bcs com7
  287.          and #$0f
  288.          sta volume
  289.          inc trpos,x
  290. com7     jmp read
  291. ;---------------------------------------
  292. ;Sector-control
  293. ;commands  $fd.xx   dur xx
  294.           ;$fc.xx   snd xx
  295.           ;$fe      cont(---)
  296.           ;$fb      gate
  297.           ;$fa      switch
  298.           ;$f9      cut
  299. ;---------------------------------------
  300. nocom    tay          ;set pointers
  301.          lda seclo,y
  302.          sta $f8
  303.          lda sechi,y
  304.          sta $f9
  305. read3    ldy secpos,x
  306.          lda ($f8),y  ;command or
  307.          cmp #$c0     ;note ?
  308.          bcs nnote    ;
  309.          jmp note
  310. nnote    cmp #$ff          ;end
  311.          bne scom1
  312.          inc trpos,x
  313.          lda switch,x ;no cut if switch
  314.          bne nowrap   ;is active
  315.          lda #$00
  316.          sta wave,x
  317.          lda #$ff
  318.          sta wvspeed1,x
  319. nowrap   lda #0
  320.          sta secpos,x
  321.  
  322.          jmp new3
  323. scom1    cmp #$fe     ;---
  324.          bne scom2
  325. note3    iny
  326.          tya
  327.          sta secpos,x
  328.          lda #1
  329.          sta cont,x
  330.          jmp note2
  331. scom2    cmp #$fd     ;dur.xx
  332.          bne scom3
  333.          iny
  334.          lda ($f8),y
  335.          sta dur,x
  336.          sta durat,x
  337. dazu4    iny
  338.          tya
  339.          sta secpos,x
  340.          jmp read3+3
  341. scom3    cmp #$fc     ;snd.xx
  342.          bne scom4
  343.          iny
  344.          lda ($f8),y
  345.          sta snd,x
  346.          jmp dazu4
  347. scom4    cmp #$fb     ;gate
  348.          bne scom5
  349.          lda #1
  350.          eor andor,x
  351.          sta andor,x
  352.          jmp note3
  353.  
  354.  
  355.  
  356. scom5    cmp #$fa     ;switch
  357.          bne scom6
  358.          lda #1
  359.          eor switch,x
  360.          sta switch,x
  361.          inc secpos,x
  362.          jmp read3
  363.  
  364. scom6    cmp #$f9     ;cut
  365.          bne scom7
  366.          lda dur,x
  367.          sta durat,x
  368.          lda #8       ;resets voice
  369.          sta $d404,x  ;+ voice routines
  370.          sta wave,x  ;to save rastertime
  371.          lda #$00
  372.          sta $d405,x
  373.          sta $d406,x
  374.          sta ad,x
  375.          sta sr,x
  376.          lda #$ff
  377.          sta wvspeed1,x
  378.          lda #1
  379.          sta cut,x
  380.          inc secpos,x
  381.          jmp hrcheck
  382. scom7               ;put future commands
  383.                     ;here
  384.          jmp read3
  385.  
  386.  
  387. note     cmp #$60   ;count notevalue
  388.          bcc normal
  389.          sec
  390.          sbc #$60
  391. normal   clc
  392.          adc trpose,x
  393.          sta notev,x ;new note
  394.          sta noteok,x
  395.          inc secpos,x
  396.  
  397. note2
  398.  
  399.          lda dur,x  ;previous note
  400.          sta durat,x
  401.          lda #0
  402.          sta cut,x
  403.          lda switch,x
  404.          bne swon
  405.          lda cont,x
  406.          bne swon
  407.          lda #1
  408.          sta andor,x
  409.          ldy snd,x  ;this frame
  410.          lda adtab,y;sets the new
  411.          sta ad,x   ;adsr-settings
  412.          sta $d405,x;= beginning of a
  413.          lda srtab,y;new note = max.
  414.          sta sr,x   ;rastertime
  415.          sta $d406,x
  416.          lda cont,x
  417.          beq noconti
  418.  
  419. swon     jsr play3
  420.          jmp nocont
  421. noconti  lda wavptab,y
  422.          sta wavepos,x
  423.          tya
  424.          pha
  425.          ldy wavepos,x ;sets wave
  426.          lda wavetab,y ;(first row)
  427.          pha
  428.          and #$f7
  429.          sta wave,x
  430.          sta $d404,x   ;check for
  431.          pla           ;drum-mode
  432.          and #$08
  433.          sta drum,x
  434.          beq nodrum2
  435.          lda freqtab,y
  436.          sta noteok,x
  437.          tay
  438.          lda frqhi,y
  439.          sta $d401,x
  440.          lda #0
  441.          sta $d400,x
  442.          jmp nonon
  443. nodrum2  lda freqtab,y
  444.          clc
  445.          adc notev,x
  446.          sta noteok,x
  447.          tay
  448.          lda frqlo,y
  449.          clc
  450.          adc fine,x
  451.          sta $d400,x
  452.          lda frqhi,y
  453.          adc #0
  454.          sta $d401,x
  455. nonon    pla
  456.          tay
  457.          lda efftab,y
  458.          and #$0f
  459.          sta wvspeed,x
  460.          sta wvspeed1,x
  461.          inc wavepos,x
  462.          lda nopu,x
  463.          bne filll
  464. ;---------------------------------------
  465.          lda pulptab,y  ;pulse-routine
  466.          tay            ;init
  467.          clc
  468.          adc #1
  469.          sta pupos,x
  470.          lda pulstab1,y
  471.          sta pulshi,x
  472.          sta $d403,x
  473.          lda pulstab2,y
  474.          sta pulslo,x
  475.          sta $d402,x
  476.          lda #0
  477.          sta pulsfrm,x
  478.          ldy snd,x
  479. filll    lda filptab,y
  480.          sta filpos,x
  481. nocont   lda #0
  482.          sta cont,x
  483.          lda hardon,x
  484.          beq hrcheck
  485.  
  486.          lda #1
  487.          sta andor,x
  488.  
  489. hrcheck  ldy secpos,x  ;checking next
  490. hrcheck2 lda ($f8),y   ;sectordata for
  491.          cmp #$ff      ;hardrestart on
  492.          bne noend     ;or off
  493.          beq onyes  ;user can manipulate
  494. noend    cmp #$60   ;this (onyes/onno)
  495.          bcc onyes  ;(new sector hr)
  496.          cmp #$c0
  497.          bcc onno
  498.          cmp #$fe
  499.          beq onno
  500.          cmp #$fb
  501.          beq onno
  502.          cmp #$f9
  503.          beq onno
  504.          cmp #$fa
  505.          bne swi
  506.          lda #1
  507.          eor switch,x
  508.          sta switch2,x
  509.          jmp plus1
  510.  
  511.  
  512. swi      cmp #$fc
  513.          bcc plus1
  514.          iny
  515. plus1    iny
  516.          bne hrcheck2
  517.  
  518. onno     lda #0
  519.          beq hrset
  520. onyes    lda #1
  521. hrset    sta hardon,x
  522.          lda switch2,x
  523.          beq ond
  524.          lda #0
  525.          sta hardon,x
  526. ond
  527.          rts
  528.  
  529. ;---------------------------------------
  530. ;hard-restart-routine
  531. ;---------------------------------------
  532. voice3   lda speed
  533.          bne nospeed0
  534.          lda durat,x
  535.          cmp #$03
  536.          bcs nichts
  537.                     ;frame 2+1
  538. frame2   lda hardon,x
  539.          beq nichts
  540.          jsr play3
  541.          lda wave,x
  542.          and #$fe
  543.          sta $d404,x
  544.          lda hardval
  545.          bpl hrsett
  546.          lda ad,x
  547. hrsett   sta $d405,x
  548.          lda sr,x
  549.          and #$f0
  550.          sta $d406,x
  551.          rts
  552.  
  553. nospeed0
  554.          lda speed1
  555.          cmp #2
  556.          bcs nichts
  557.          lda durat,x
  558.          cmp #1
  559.          bne nichts
  560.          jmp frame2
  561.  
  562.  
  563. nichts   jmp play3
  564. ;---------------------------------------
  565. ;        adsr-routines
  566. ;---------------------------------------
  567. play2    ldx #$00
  568.          jsr play3
  569.          ldx #7
  570.          jsr play3
  571.          ldx #14
  572. ;---------------------------------------
  573. play3
  574. ;---------------------------------------
  575. ;wave-freq-table-handling
  576. ;---------------------------------------
  577. wavrout
  578.          lda cut,x
  579.          beq ton
  580.          rts
  581. ton      lda wvspeed1,x ;new row ?
  582.          cmp #$ff
  583.          beq nochnich
  584.          dec wvspeed1,x
  585.          bpl nochnich
  586.          lda wvspeed,x
  587.          sta wvspeed1,x
  588. newread  ldy wavepos,x
  589.          inc wavepos,x
  590.          lda wavetab,y
  591.          cmp #$91      ;check stop
  592.          beq schluss
  593.          cmp #$90      ;check loop
  594.          bne nextstep
  595.          lda freqtab,y
  596.          sta wavepos,x
  597.          jmp newread
  598. nextstep pha
  599.          and #$f7     ;check drummode
  600.          sta wave,x
  601.          pla
  602.          and #$08
  603.          sta drum,x
  604.          beq nodrum
  605.          lda freqtab,y
  606.          sta noteok,x
  607.          jmp nochnich
  608. nodrum   lda freqtab,y
  609.          clc
  610.          adc notev,x
  611.          sta noteok,x
  612.          jmp nochnich
  613.  
  614.  
  615. schluss  lda #$ff       ;stop mark
  616.          sta wvspeed1,x
  617.  
  618. nochnich
  619.  
  620. ;---------------------------------------
  621. ;pulsroutine
  622. ;---------------------------------------
  623.          lda pupos,x
  624.          tay
  625.          lda pulsfrm,x   ;new row?
  626.          bne nonewset
  627. nochmal  lda pulstab1,y
  628.          cmp #$90        ;check loop
  629.          bne pp1
  630.          lda pulstab2,y
  631.          sta pupos,x
  632.          tay
  633.          jmp nochmal
  634. pp1      cmp #$91        ;check stop
  635.          beq filli
  636.  
  637.  
  638. pp2      sta pulsaddh,x  ;count values
  639.          lda pulstab2,y
  640.          sta pulsaddl,x
  641.          lda pulstab2+1,y
  642.          sta pulsfrm,x
  643.          tya
  644.          clc
  645.          adc #2
  646.          sta pupos,x
  647. nonewset lda pulslo,x
  648.          clc              ;set values
  649.          adc pulsaddl,x
  650.          sta pulslo,x
  651.          sta $d402,x
  652.          lda pulshi,x
  653.          adc pulsaddh,x
  654.          sta pulshi,x
  655.          sta $d403,x
  656.          dec pulsfrm,x
  657.  
  658.  
  659.  
  660.  
  661. ;---------------------------------------
  662. ;Filterroutine
  663. ;---------------------------------------
  664. filli                ;still to code
  665.                      ;
  666. ;---------------------------------------
  667. ;writing the SID-registers
  668. ;---------------------------------------
  669.          lda wave,x
  670.          tay         ;if gatebit off by
  671.          and #1      ;table, disable
  672.          beq nogat   ;gate command
  673.          tya
  674.          and #$fe
  675.          ora andor,x
  676.          tay
  677. nogat    tya
  678.          sta $d404,x  ;write remaining
  679.          lda ad,x     ;registers
  680.          sta $d405,x
  681.          lda sr,x
  682.          sta $d406,x
  683.          ldy noteok,x
  684.          lda drum,x
  685.          beq norm
  686.          tya
  687.          sta $d401,x
  688.          lda #0
  689.          sta $d400,x
  690.          beq witer
  691. norm
  692.          lda frqlo,y
  693.          clc
  694.          adc fine,x
  695.          sta $d400,x
  696.          lda frqhi,y
  697.          adc #0
  698.          sta $d401,x
  699. witer
  700.          rts
  701.  
  702. ;---------------------------------------
  703. ;Tables
  704. ;---------------------------------------
  705. frqlo    .byte $0c,$1c,$2d,$3e,$47,$66
  706.          .byte $7b,$91,$a9,$c3,$dd,$fa
  707.          .byte $18,$38,$5a,$7d,$a3,$cc
  708.          .byte $f6,$23,$53,$86,$bb,$f4
  709.          .byte $30,$70,$b4,$fb,$47,$98
  710.          .byte $ed,$47,$a7,$0c,$77,$e9
  711.          .byte $61,$e1,$68,$f7,$8f,$30
  712.          .byte $da,$8f,$4e,$18,$ef,$d2
  713.          .byte $c3,$c3,$d1,$ef,$1f,$60
  714.          .byte $b5,$1e,$9c,$31,$df,$a5
  715.          .byte $87,$86,$a2,$df,$3e,$c1
  716.          .byte $6b,$3c,$39,$63,$be,$4b
  717.          .byte $0f,$0c,$45,$bf,$7d,$83
  718.          .byte $d6,$79,$73,$c7,$7c,$97
  719.          .byte $1e,$18,$8b,$7e,$fa,$06
  720.          .byte $ac,$f3,$e6,$8f,$f8,$fc
  721. ;---------------------------------------
  722. frqhi    .byte $01,$01,$01,$01,$01,$01
  723.          .byte $01,$01,$01,$01,$01,$01
  724.          .byte $02,$02,$02,$02,$02,$02
  725.          .byte $02,$03,$03,$03,$03,$03
  726.          .byte $04,$04,$04,$04,$05,$05
  727.          .byte $05,$06,$06,$07,$07,$07
  728.          .byte $08,$08,$09,$09,$0a,$0b
  729.          .byte $0b,$0c,$0d,$0e,$0e,$0f
  730.          .byte $10,$11,$12,$13,$15,$16
  731.          .byte $17,$19,$1a,$1c,$1d,$1f
  732.          .byte $21,$23,$25,$27,$2a,$2c
  733.          .byte $2f,$32,$35,$38,$3b,$3f
  734.          .byte $43,$47,$4b,$4f,$54,$59
  735.          .byte $5e,$64,$6a,$70,$77,$7e
  736.          .byte $86,$8e,$96,$9f,$a8,$b3
  737.          .byte $bd,$c8,$d4,$e1,$ee,$fd
  738. ;---------------------------------------
  739. trakk    .word tr1,tr2,tr3
  740.          .byte $00;speed
  741.          .byte $0f;volume
  742.  
  743. ;---------------------------------------
  744. seclo    .byte <s00,<s01,<s02
  745.  
  746. sechi    .byte >s00,>s01,>s02
  747.  
  748. ;---------------------------------------
  749. ;commands
  750.          ;$ff xx    loop xx
  751.          ;$fe       stop voice
  752.          ;$fd xx    transpose +xx
  753.          ;$fc xx    transpose -xx
  754.          ;$fb xx    fadein  xx
  755.          ;$fa xx    fadeout xx
  756.          ;$ex       volume x
  757.  
  758. ;---------------------------------------
  759. tr1
  760.          .byte $fa,$0d,0,0,$fa,0,0,0
  761.          .byte $fc,$04
  762.          .byte $fb,$0d,0,0,0,0
  763.          .byte $fc,$00
  764.          .byte $ff,$00
  765.  
  766. tr2
  767.          .byte $01,$ff,$00
  768.  
  769. tr3
  770.          .byte $02,$ff,$00
  771. ;---------------------------------------
  772. ;commands  $fd.xx   dur xx
  773.           ;$fc.xx   snd xx
  774.           ;$fe      cont(---)
  775.           ;$fb      gate
  776.           ;$fa      switch
  777.           ;$f9      cut
  778.  
  779.  
  780.  
  781. ;---------------------------------------
  782. s00      .byte $fd,$05
  783.          .byte $fc,$00
  784.          .byte $10,$fe,$fe,$10,$fe,$1a
  785.          .byte $1c,$fe,$1c,$10,$f9,$17
  786.          .byte $ff
  787.  
  788. s01      .byte $fd,$05,$fc,$01
  789.          .byte $00,$fe,$00,$00,$fe,$00
  790.          .byte $fc,$02
  791.          .byte $00,$fe,$00,$00,$fe,$00
  792.          .byte $ff
  793.  
  794. s02      .byte $fd,$05,$fc,$03
  795.          .byte $34,$fe,$fe,$fe,$fe,$34
  796.          .byte $fb,$fe,$34,$34,$f9,$34
  797.          .byte $ff
  798.  
  799. ;---------------------------------------
  800. ;instrument data
  801. ;---------------------------------------
  802. adtab    .byte $02,$00,$02,$00
  803. srtab    .byte $aa,$f8,$84,$59
  804. wavptab  .byte $00,$04,$0b,$12
  805. pulptab  .byte $00,$06,$08,$00
  806. filptab  .byte $00,$00,$00,$00
  807. efftab   .byte $00,$00,$00,$01;xy
  808.                        ;x=
  809.                        ;y=wvspeed
  810.  
  811.  
  812. wavetab  .byte $41
  813.          .byte $89,$41,$91
  814.          .byte $09
  815.          .byte $89,$19,$19,$19,$18,$91
  816.          .byte $09
  817.          .byte $89,$48,$88,$48,$88,$91
  818.          .byte $21,$21,$21,$90
  819.  
  820. freqtab  .byte $00
  821.          .byte $dd,$00,$00
  822.          .byte $00
  823.          .byte $dd,$0a,$07,$04,$02,$00
  824.          .byte $00
  825.          .byte $dd,$0d,$3c,$0a,$3c,$00
  826.          .byte $00,$03,$07,$12
  827.  
  828. pulstab1 .byte $03,$00,$00,$ff,$00,$90
  829.          .byte $00,$91
  830.          .byte $08,$91
  831.  
  832. pulstab2 .byte $f0,$20,$20,$e0,$20,$01
  833.          .byte $00,$00
  834.          .byte $00,$00
  835.  
  836. ;---------------------------------------
  837. ;not used yet
  838. ;---------------------------------------
  839. commtab  .byte $00    ;command
  840. commtab1 .byte $00    ;value
  841. commtab2 .byte $00    ;value
  842. ;---------------------------------------
  843.  
  844.